Expand description

Signing API requests without effort.

Example

use reqsign::services::aws::v4::Signer;
use reqwest::{Client, Request, Url};
use anyhow::Result;

#[tokio::main]
async fn main() -> Result<()>{
    // Signer can load region and credentials from environment by default.
    let signer = Signer::builder()
        .service("s3")
        .region("test")
        .allow_anonymous()
        .build()?;
    // Construct request
    let url = Url::parse( "https://s3.amazonaws.com/testbucket")?;
    let mut req = reqwest::Request::new(http::Method::GET, url);
    // Signing request with Signer
    signer.sign(&mut req)?;
    // Sending already signed request.
    let resp = Client::new().execute(req).await?;
    println!("resp got status: {}", resp.status());
    Ok(())
}

Available Services

  • AWS SigV4 for AWS services like S3.
  • Azure Storage for Azure Storage services like Azure Blob Service.
  • Google for All google cloud services like Google Cloud Storage Service.

Features

reqsign support http::Request by default. Other request types support are hided under feature gates to reduce dependencies.

Modules

Service implement of signers.

Time related utils.